/**   
 * @ClassName: IMenuService.java 
 * @Package com.vrv.menu.service 
 * @author LQ   
 * @date 2017年3月12日 下午5:04:31 
 * @version V1.0
 */
package com.vrv.menu.service;

import java.util.List;

import com.vrv.common.util.result.ResultMapper;
import com.vrv.menu.model.Menu;

/** 
 * MenuService:菜单service接口
 * @author LQ 
 */
public interface MenuService {
    
    /**
     * 菜单集合
     * @return List<Menu> 菜单集合
     */
    List<Menu> list();
    
    /**
     * 菜单集合分页
     * @param page 页
     * @param limit 行
     * @return List<Menu> 菜单集合
     */
    List<Menu> list(Integer page,Integer limit);
    
    /**
     * 获取用户菜单集合
     * @param userCode 用户编号
     * @return List<Menu> 菜单集合
     */
    List<Menu> queryUserMenuList(Integer userCode);
    
    /**
     * 根据父项编号查询菜单集合
     * @param parentCode 父项编号
     * @return List<Menu> 菜单集合
     */
    List<Menu> queryMenuByParentCodeList(Integer parentCode,List<Integer> menuCodeList);
    
    /**
     * 根据菜单编号查询菜单实体
     * @param menuCode 菜单编号
     * @return Menu 菜单实体
     */
    Menu getMenuByCode(Integer menuCode);
    
    /**
     * 新增菜单
     * @param menu 菜单实体
     */
    void add(Menu menu);
    
    /**
     * 修改菜单
     * @param menu 菜单实体
     */
    void update(Menu menu);
    
    /**
     * 批量删除
     * @param menuCodes 主键数组
     */
    ResultMapper deleteBatch(Integer[] menuCodes);
    
}
